using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Content;
using SanJ.FreeCare.Shared;

namespace SanJ.FreeCare.Medications
{
    public partial interface IMedicationsAppService : IApplicationService
    {

        Task<PagedResultDto<MedicationDto>> GetListAsync(GetMedicationsInput input);

        Task<MedicationDto> GetAsync(Guid id);

        Task DeleteAsync(Guid id);

        Task<MedicationDto> CreateAsync(MedicationCreateDto input);

        Task<MedicationDto> UpdateAsync(Guid id, MedicationUpdateDto input);

        Task<IRemoteStreamContent> GetListAsExcelFileAsync(MedicationExcelDownloadDto input);

        Task<SanJ.FreeCare.Shared.DownloadTokenResultDto> GetDownloadTokenAsync(); Task DeleteByIdsAsync(List<Guid> medicationIds);

        Task DeleteAllAsync(GetMedicationsInput input);
    }
}